//为了演示简洁，只作简单的设计
//需要转换才能给浏览器使用。babel, webpack，高版本chrome....
//import CItem from 'userClass.js';

let cart = [{
    id: 1,
    name: "手机游戏神器",
    数量: 1,
    price: 2
}, {
    id: 2,
    name: "华为手机Mate40",
    数量: 1,
    price: 8000
}]
let user = {};

function sendCart() {
    Ajax.post('http://localhost:8000/cartInfo', JSON.stringify(cart), (data) => {
        console.log(data); //打印返回的信息！
    })
}

function getCart() {
    Ajax.get('http://localhost:8000/getCart', (data) => {
        console.log(data);
    })
}

function reg(注册信息) {
    Ajax.post('http://localhost:8000/reg', JSON.stringify(注册信息), (data) => {
        console.log(data); //打印返回的信息！
    })
}

function login(username, password) {
    user = {
        name: username,
        pwdMD5: md5(password)
    }
    Ajax.post('http://localhost:8000/login', JSON.stringify(user), (data) => {
        //根据返回值进行处理
        console.log(data); //打印返回的信息！
    })
}

function logout(username) {
    user = {
        name: username
    }
    Ajax.post('http://localhost:8000/logout', JSON.stringify(user), (data) => {
        //根据返回值进行处理
        console.log(data); //打印返回的信息！
        //todo:补全代码本地清除用户信息。
    })
}

function md5(data) {
    //做个md5再返回，这里返回了lyshlysh的MD5值用于测试
    return 'e526d1316d8f7cf97ec8b102be156c31';
}



//直接抄了https://www.cnblogs.com/colima/p/5339227.html，若看不懂，可参考原文
var Ajax = {
    get: function (url, fn) {
        // XMLHttpRequest对象用于在后台与服务器交换数据   
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.onreadystatechange = function () {
            // readyState == 4说明请求已完成
            if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
                // 从服务器获得数据 
                fn.call(this, xhr.responseText);
            }
        };
        xhr.send();
    },
    // datat应为'a=a1&b=b1'这种字符串格式，在jq里如果data为对象会自动将对象转成这种字符串格式
    post: function (url, data, fn) {
        var xhr = new XMLHttpRequest();
        xhr.open("POST", url, true);
        // 添加http头，发送信息至服务器时内容编码类型
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
                fn.call(this, xhr.responseText);
            }
        };
        xhr.send(data);
    }
}